function cntMedia_startup()
{
    cntMedia_init_item_handlers( '' );
    return true;
}

function cntMedia_init_item_handlers( prefix )
{
    $(prefix+' form.handler__cntMediaForm').ajaxForm( {
        beforeSubmit: null,
        success:      cntMedia_response,
        dataType:     'json'
    } );

    $(prefix+' form.handler__cntMediaDeleteForm').ajaxForm( {
        beforeSubmit: null,
        success:      cntMedia_response,
        dataType:     'json'
    } );

    $(prefix+' .handler__cntMedia_DescriptionShow').click( function() {
        var div_id = $(this).attr('div_id');

        $('div.'+div_id+' .cntMedia_Box_DesciptionShower').hide();
        $('div.'+div_id+' .cntMedia_Box_Desciption').show();

        return true;
    } );

    $(prefix+' .handler__cntMedia_DescriptionDrop').click( function() {
        var div_id = $(this).attr('div_id');

        $('div.'+div_id+' .cntMedia_Box_DesciptionShower').show();
        $('div.'+div_id+' .cntMedia_Box_Desciption').hide();
        $('div.'+div_id+' textarea[@name=description]').attr('value','');

        return true;
    } );

    $(prefix+' .handler__cntMedia_ManagerShow').click( function() {
        var div_id = $(this).attr('div_id');

        $('div.'+div_id+' .cntMedia_Box_ManagerShower').hide();
        $('div.'+div_id+' .cntMedia_Box_Manager').show();
    } );

    $(prefix+' .handler__cntMedia_ManagerCancel').click( function() {
        var div_id = $(this).attr('div_id');

        $('div.'+div_id+' .cntMedia_Box_ManagerShower').show();
        $('div.'+div_id+' .cntMedia_Box_Manager').hide();
    } );

    $(prefix+' .handler__cntMedia_ManagerSubmitForm').click( function() {
        var div_id = $(this).attr('div_id');
        $('div.'+div_id+' form.handler__cntMediaForm').submit();
    } );

    $(prefix+' .handler__cntMedia_ManagerSubmitDeleteForm').click( function() {
        var div_id = $(this).attr('div_id');

        if( confirm( 'Вы действительно хотите удалить выбранный элемент?' ) == true )
        {
            $('div.'+div_id+' form.handler__cntMediaDeleteForm').submit();
        }
    } );

    $(prefix+' .handler__cntMedia_ManagerUploadfileBox').change( function() {
        $(prefix+' .handler__cntMedia_ManagerSubmitForm')
            .fadeOut(100).fadeIn(100)
            .fadeOut(100).fadeIn(100)
            .fadeOut(100).fadeIn(100)
            .fadeOut(200).fadeIn(200)
            .fadeOut(200).fadeIn(200)
            .fadeOut(200).fadeIn(200);
    } );

    return true;
}

function cntMedia_submit( div_id )
{
    if( $('div.'+div_id+' form').length > 0 )
    {
        $('div.'+div_id+' div.cntMediaItem-errorMessageBox').hide();
        $('div.'+div_id+' form').submit();
    }

    return true;
}
    
function cntMedia_response( responseBody, responseStatus )
{
    if( responseStatus == 'success' && responseBody )
    {
        var prefix = 'div.cntMediaItems_' + responseBody.media_group_id;

        switch( responseBody.status )
        {
            case 'error':
            {
                var errorMessage = '';

                for( var key in responseBody.error_messages )
                {
                    errorMessage += responseBody.error_messages[key] + '<br />';
                }

                $(prefix + ' div.'+responseBody.div_id+' div.cntMediaItem-errorMessageBox').html( errorMessage );
                $(prefix + ' div.'+responseBody.div_id+' div.cntMediaItem-errorMessageBox').fadeIn(500);
                break;
            }

            case 'complite':
            {
                $(prefix + ' div.'+responseBody.div_id).fadeOut(
                    400,
                    function()
                    {
                        if( responseBody.content.mode == 'insert' )
                        {
                            $(prefix + ' .cntMediaItem:last').after( $(responseBody.content.item_tpldata).hide().fadeIn(400) );
                            cntMedia_init_item_handlers( 'div.cntMediaItem_'+responseBody.content.item_safe_gid );

                            if( responseBody.content.form_tpldata )
                            {
                                $(prefix + ' .cntMediaItem:last').after( $(responseBody.content.form_tpldata).hide().fadeIn(1100) );
                                cntMedia_init_item_handlers( 'div.cntMediaItem_'+responseBody.content.form_safe_gid );
                            }
                        }
                        else // 'modify'
                        {
                            $(this).after( $(responseBody.content.item_tpldata).hide().fadeIn(400) );
                            cntMedia_init_item_handlers( 'div.cntMediaItem_'+responseBody.content.item_safe_gid );
                        }

                        $(this).remove();
                    }
                );
                break;
            }

            case 'delete_complite':
            {
                $(prefix + ' div.'+responseBody.div_id).fadeOut(
                    400,
                    function()
                    {
                        if( responseBody.content.form_tpldata )
                        {
                            $(prefix + ' .cntMediaItem:last').after( $(responseBody.content.form_tpldata).hide().fadeIn(400) );
                            cntMedia_init_item_handlers( 'div.cntMediaItem_'+responseBody.content.form_safe_gid );
                        }

                        $(this).remove();
                    }
                );
                break;
            }
        }
    }
}
